# Chapter 1. Introduction to Relational Databases

#### Contents:

What Is a Database?
What Is a Relational Database?
Applications and Databases
MySQL and mSQL

Large corporate computing shops have been using complex and expensive database products for years. These full-featured, heavily optimized software systems are the only way for a big organization to manage its volumes of corporate information.

Home computer users haven't traditionally needed database products at all. They house their data -- addresses, to-do lists, etc. -- on their systems in small files or in specialized, off-the-shelf spreadsheet and phone book applications.

A new category of computer users who falls in between these two extremes has come into play. These persons maintain moderate-sized information sets required for small organizations, such as new businesses or nonprofit organizations. Alternatively, such users may not be just small, but instead may be a geographically isolated part of a larger company. Or the new kind of users might simply be individuals interested in maintaining complex, but personal data, such as a list of songs, from favorite bands, that can be served up on a personal web page. If you are the kind of person who wants a database, who is willing to do some work to set one up, but who does not want to spend six figures on a product and a fleet of programmers to maintain it, this book is for you.

This book introduces you to the world of small-scale database development through two popular database products, MySQL and mSQL. We start by introducing you to relational databases and application design in the relational world. If you have experience with relational databases and database design, you can skip on to Chapter 4, "MySQL", or Chapter 5, "mSQL", where we dive into the details of getting up and running with MySQL and mSQL. If you do skip on, you should note that we do provide a brief introduction and comparison of the two engines at the end of this chapter. The rest of the book -- the vast majority of it -- covers the use of MySQL and mSQL to build and support the type of applications important to users like you.

## 1.1. What Is a Database?

A database is, simply put, a collection of data. An example of a nonelectronic database is the public library. The library stores books, periodicals, and other documents. When you need to locate some data at the library, you search through the card catalog or the periodicals index, or maybe you even ask the librarian. Another similar example is the unsorted pile of papers you might find on your desk. When you need to find something, you rifle through the stack until you find the scrap of paper you are looking for. This database works (or maybe it doesn't) because the size of the database is incredibly small. A stack of papers certainly would not work with a larger set of data, such as the collections in the library. In the library, without the card catalog, periodicals index, and librarian, the library would still be a database; it would just be an unusable database. A database therefore generally requires some sort of organization to be of value. Your pile of papers would be much more reliable if you had some sort of filing system (then maybe you would not have lost that phone number!). So, restating our definition, we will define a database as an organized collection of data.

The library and the stack of papers have many similarities. They are both databases of documents. It makes no sense, however, to combine them because your papers are only interesting to you and the library contains documents of general interest. Both databases have a specific purpose and they are organized according to that purpose. We will therefore amend our definition a bit further: a database is a collection of data that is organized and stored according to some purpose.

Traditional paper-based databases have many disadvantages. They require a tremendous amount of physical space. Libraries occupy entire buildings and searching a library is relatively slow. Anyone who has spent time in a library knows that it can consume a nontrivial amount of time to find the information you seek. Libraries are also tedious to maintain and an inordinate amount of time is spent keeping the catalogs and shelves consistent. Electronic storage of a database helps to address these issues.

MySQL and mSQL are not databases. They are actually computer software that enable a user to create, maintain, and manage electronic databases. This category of software is known as a Database Management System (DBMS). A DBMS acts as a broker between the physical database and the users of that database.

When you first began managing electronic information, you almost certainly used a flat file. The file system file is the electronic version of the pile of papers on your desk. You likely came to the conclusion that this sort of ad hoc electronic database didn't meet your needs any more. A DBMS is the logical next step for your database needs, and MySQL and mSQL are the first stepping stones into the world of relational database management systems.

Copyright © 2001 O'Reilly & Associates. All rights reserved.